The use of configurable integrated circuits (“IC's”) has dramatically increased in recent years. One example of a configurable IC is a field programmable gate array (“FPGA”). An FPGA is a field programmable IC that often has logic circuits, interconnect circuits, and input/output (I/O) circuits. The logic circuits (also called logic blocks) are typically arranged as an internal array of circuits. These logic circuits are typically connected together through numerous interconnect circuits (also called interconnects). The logic and interconnect circuits are often surrounded by the I/O circuits. Like some other configurable IC's, the logic circuits and interconnect circuits of an FPGA are configurable.
FIG. 1 illustrates a portion of a prior art configurable IC 100. As shown in this figure, the IC 100 includes an array of configurable logic circuits 105 and configurable interconnect circuits 110. The IC 100 has two types of interconnect circuits 110a and 110b. Interconnect circuits 110a connect interconnect circuits 110b and logic circuits 105, while interconnect circuits 110b connect interconnect circuits 110a to other interconnect circuits 110a. In some cases, the IC 100 includes hundreds or thousands of logic circuits 105 and interconnect circuits 110.
FPGA's have become popular as their configurable logic and interconnect circuits allow the FPGA's to be adaptively configured by system manufacturers for their particular applications. Also, in recent years, several configurable IC's have been suggested that are capable of reconfiguration at runtime. However, there has not been much innovation regarding IC's that can configure one or more times during one clock cycle. Consequently, most reconfigurable IC's take several cycles (e.g., tens, hundreds, or thousands of cycles) to reconfigure.
There is a need in the art for configurable IC's that can configure at least once during each clock cycle. Ideally, the configurable IC can configure multiple times within one clock cycle. Such configurability would have many advantages, such as enabling an IC to perform numerous functions within any given clock cycle. There is also a need in the art to make the interconnect circuits configurable. It is desirable to enable some of the interconnect circuits to configurably perform either interconnect operations or logic operations.